정처기 2024 2회차 복기
목차
C 언어: 5개
포인터 3개
배열 비교
void check(int *a, int *b) {
if (a == b) {
printf("O");
} else {
printf("N");
}
}
void main() {
a1 = {1,2,3,4}
a2 = {1,2,3,4}
a3 = {1,2,3}
check(a1, a2)
check(a2, a3)
check(a1, a3)
}
ONN
클로저 / 스위치
클로저 훼이크 스위치 break 낚시
void swap() {
int a = 11, b = 19;
int temp;
temp = a;
a = b;
b = temp;
}
void main() {
int a = 11, b = 19;
swap();
switch(a) {
case 1:
b++;
case 11:
b += 2;
default:
b += 3;
break;
}
printf("%d", a-b);
}
-13
문자열 포인터
void test (str* d, str* s) {
while (*s != '\0') {
*d = *s;
d++;
s++;
}
*d = '\0';
}
void main() {
i = 0, sum = 0;
str1 = "first";
str2 = "teststring";
test(str2,str1);
while(str[i] != '\0') {
sum = sum + i
i++;
}
printf("%d", sum);
}
10
2차원 배열 포인터
void test(int[][] arr) {
print("%d", parr[1][1] + *(parr[1]+2) + **parr)
}
void main() {
int[3][3] arr = {1,2,3,4,5,6,7,8,9}
int[][] *parr = {arr[1], arr[2]}
test(parr)
}
구조체 포인터
struct list {
int h1;
list *h2;
}
void main() {
list a = {10, 0}, b = {20, 0}, c = {30, 0};
*head = &a;
a.h2 = &b;
b.h2 = &c;
print("%d", head->h2->h1)
}
20